package com.msh.artascope.devcloud.service.service;

import com.msh.artascope.devcloud.client.po.ModuleReverseProxyPo;
import com.msh.artascope.devcloud.client.qo.ModuleReverseProxyQo;
import com.msh.artascope.devcloud.service.model.query.ModuleReverseProxyQueryVo;
import com.msh.artascope.devcloud.service.model.vo.ModuleReverseProxyVo;
import com.msh.artascope.devcloud.service.wrapper.K8sWrapper.K8sInfo;
import com.msh.frame.client.base.TenantBaseService;
import com.msh.frame.client.common.Result;
import java.util.List;

/**
 * @author shihu
 * @email m-sh@qq.com
 */
public interface ModuleReverseProxyService extends
    TenantBaseService<ModuleReverseProxyPo, ModuleReverseProxyQo> {

  /**
   * 重新加载
   *
   * @param moduleId
   * @param k8sInfo
   * @param tenantId
   */
  void reloadVirtualServiceByModuleId(Long moduleId, K8sInfo k8sInfo, Long tenantId);

  /**
   * 通过制品id删除
   *
   * @param moduleId
   * @param tenantId
   * @return
   */
  int deleteByModuleId(Long moduleId, Long tenantId);

  // ----------前端vo处理-------------------------------------------------------
  Long insertVo(ModuleReverseProxyVo vo);

  void deleteVo(Long id, Long tenantId);

  /**
   * id查询
   *
   * @param id 主键id
   * @return 查询Vo列表
   */
  ModuleReverseProxyVo getVo(Long id, Long tenantId);

  /**
   * 查询
   *
   * @param q 查询QueryVo
   * @return 查询Vo列表
   */
  List<ModuleReverseProxyVo> listVo(ModuleReverseProxyQueryVo q);

  /**
   * 分页查询
   *
   * @param q 查询QueryVo
   * @return 分页查询Po列表
   */
  Result<List<ModuleReverseProxyVo>> pageVo(ModuleReverseProxyQueryVo q);


}
